RUN: llvm-objdump --macho --dyld-info %p/Inputs/chained-fixups.macho-x86_64 | \
RUN:     FileCheck -DNAME=%p/Inputs/chained-fixups.macho-x86_64 %s
RUN: llvm-otool -dyld_info %p/Inputs/chained-fixups.macho-x86_64 | \
RUN:     FileCheck -DNAME=%p/Inputs/chained-fixups.macho-x86_64 %s

## See chained-fixups.test for how the test input was generated.
CHECK:      [[NAME]]:
CHECK-NEXT: dyld information:
CHECK-NEXT: segment      section address       pointer      type   addend dylib          symbol/vm address
CHECK-NEXT: __DATA_CONST __const 0x3E0   0x8010000000000001 bind   0x0    libdylib       _weakImport (weak import)
CHECK-NEXT: __DATA_CONST __const 0x3E8   0x8000000000000000 bind   0x0    flat-namespace _dynamicLookup
CHECK-NEXT: __DATA       __data  0x3F0   0x00200000000003F0 rebase                       0x3F0
CHECK-NEXT: __DATA       __data  0x400   0x8000000000000004 bind   0x0     weak          _weak
CHECK-NEXT: __DATA       __data  0x1410  0x8000000000000003 bind   0x0     weak          _weakLocal
CHECK-NEXT: __DATA       __data  0x3410  0x8010000000000002 bind   0x0     libdylib      _dylib
CHECK-NEXT: __DATA       __data  0x3418  0x800000002A000002 bind   0x2A    libdylib      _dylib


## TODO: Print opcode-based fixups/binds as well
## For now, test that execution doesn't fail if the input uses those.
RUN: llvm-objdump --macho --dyld-info %p/Inputs/bind.macho-x86_64
RUN: llvm-objdump --macho --dyld-info %p/Inputs/bind.macho-x86_64


## If both -chained_fixups and -dyld_info are passed, otool prints dyld_info
## output first. Match that.
RUN: llvm-otool -chained_fixups -dyld_info \
RUN:     %p/Inputs/chained-fixups.macho-x86_64 | \
RUN:     FileCheck --check-prefix=BOTH %s
BOTH: dyld information:
BOTH: chained fixups header
